<?php
/**create by fu */
namespace app\api\controller\v1;

use think\Controller;
use app\api\service\Token as TokenService;
use app\api\service\Order as OrderService;
use app\lib\enum\ScopeEnum;
use app\lib\exception\ForbiddenException;
use app\lib\exception\TokenException;
use app\api\controller\BaseController;
use app\api\validate\OrderPlace;

/**
 *  创建订单
 */
class Order extends BaseController
{
	/**检查是否有 访问权限
	 * 1 头信息获取token
	 * 2 到缓存里找token为键对应改的数组
	 */
    protected $beforeActionList = [
 		'checkExclusiveScope' => ['only'=>'placeOrder'],
	];
	
	// 用户选择商品后 提交商品相关信息
	// API 收到后 检查库存信息
	// 有库存  创建订单  ；让客户端支付
	// 调用支付接口 进行支付
	// 支付前再次检查库存
	// 调用微信支付接口 统一下单 -> 获得prepay_id 保存 -> 签名 并获得数组 返回给小程序 -> 小程序 拉起微信支付 
	// 微信支付结果  （异步）
	// 成功：进行库存量的扣除
	// 成功：进行库存量扣除，失败：返回一个支付失败结果

	public function placeOrder()
	{
		// p(input('post.products/a'));
		(new OrderPlace())->goCheck();
		// products/a 数组的变量修饰符
		$products = input('post.products/a');
		$uid = TokenService::getCurrentUid();
 
		$order = new OrderService();
		$status = $order->place($uid,$products);

		return $status;

	}

}



 ?>